6
תגובות
תיקיות ב htaccess
פתח
Ben
,
היי.
יש לי תיקייה בשם templates ששם נמצאים כל הקבצים שלי,
על מנת שהכתובת לא תיהיה site.com/templates/page.php, דרך קובץ htaccess אני מנווט ל site.com/page.htm.
הבעיה היא שכאשר נכנסים לתיקיה site.com/templates רואים היררכיה של כל הקבצים שנמצאים שם, ואני לא רוצה לאפשר את זה.
האם ישנה דרך לחסום את הגישה ל templates, או שלא יראו את היררכית הקבצים ?
יש לי תיקייה בשם templates ששם נמצאים כל הקבצים שלי,
על מנת שהכתובת לא תיהיה site.com/templates/page.php, דרך קובץ htaccess אני מנווט ל site.com/page.htm.
הבעיה היא שכאשר נכנסים לתיקיה site.com/templates רואים היררכיה של כל הקבצים שנמצאים שם, ואני לא רוצה לאפשר את זה.
האם ישנה דרך לחסום את הגישה ל templates, או שלא יראו את היררכית הקבצים ?
6 תשובות
אם אתה רוצה לנווט את כל האתר שלך לתיקייה הזאת, תכתוב את זה:
RewriteEngine On
RewriteRule ^(.*)$ /templates/$1 [L,QSA]
RewriteRule ^(.*)$ /templates/$1 [L,QSA]
אם זה לא כל האתר שלך ואתה רוצה להמשיך בדרך שלך, תכתוב בקובץ .htaccess שב-templates:
Options -Indexes
זה יוריד את רשימת התיקיות והקבצים לאותה תיקייה.
קח בחשבון שעדיין יוכלו להיכנס לקובץ שם באופן ישיר.
דרך להימנע מזה היא פשוט לייבא את הקבצים לקובץ ה-PHP ולחסום בכלל גישה מבחוץ לתיקייה - 403. (או לעשות כאילו התיקייה לא קיימת, ולהחזיר 404; לא קובץ שגיאת 404, אלא באמת Header של 404 כדי שלא יהיה אפשר לדעת מבחוץ שהתיקייה הזאת קיימת.)
@yonikal56, לא טוב.
@OrelBeY, השתמשתי ב -
Options -Indexes
גם כשאני מחזיר שגיאה 404 יש לי אפשרות לגשת לקובץ...
אם אתה רוצה שזה יקרה רק בגישה לתיקייה ולא בגישה לקבצים/תיקיות שבאותה תיקייה (לא שאתה אמור לרצות את זה):
RewriteRule ^(/?)$ return-404.php [L,QSA]
אם אתה רוצה להעלים את התיקייה ואת כל מה שיש בה מהרדאר. אף אחד לא ידע שזה שם:
RewriteRule ^(.*)$ return-404.php [L,QSA]
מה שעשינו פה זה לקחת את הבקשות האלה ולהעביר אותם (פנימית, בלי שהגולש ידע) לטיפול הקובץ return-404.php. מהקובץ הזה נחזיר את שגיאת ה-404:
<?php
header('HTTP/1.0 404 Not Found');
exit;
header('HTTP/1.0 404 Not Found');
exit;
אבל הבעיה שאם אני מעלים את התיקיה מהאדאר:
RewriteRule ^(.*)$ return-404.php [L,QSA]
אני לא יכול לגשת לקבצים שבתוכה בכלל.
הכוונה שלי הייתה שלא אוכל לגלוש לקובץ page ככה:
site.com/tampletas/page.php
אלא רק -
site.com/page.htm